<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Cambiarnromat extends MN_Controller {

    function __construct() {
        parent::__construct();
        $this->load->database();
        $this->load->helper(array('url', 'form'));
        $this->load->library('ion_auth');
        $this->load->library('session');
        $this->load->model('Periodos_Model');
        $this->load->model('Pensum_Model');
        $this->load->model('Carrera_Model');
        $this->load->model('Ciclos_Model');
        $this->load->model('Reportes_Model');
    }

    public function index() {

        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();
    }

    public function inicio() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();


        $this->data['periodos'] = $this->Periodos_Model->getListado();
        //$this->data['periodos'] = $this->Periodos_Model->getPeriodoActivo();
        $this->data['carrera'] = $this->Carrera_Model->getListado();

        $periodo = $this->uri->segment(3);
        $ide_car = $this->uri->segment(4);
        $ide_pen = $this->uri->segment(5);
        $codigo_cic = $this->uri->segment(6);
        //$seccion = $this->uri->segment(7);
        //$paralelo = $this->uri->segment(8);

        if (!empty($periodo) && $periodo != -1) {
            $this->data['periodos'] = $this->Periodos_Model->getListado();
            $this->data['periodo'] = $periodo;
        } else {
            $this->data['periodos'] = $this->Periodos_Model->getListado();
            $this->data['periodo'] = -1;
            //$periodo = $this->data['periodos'][0];
        }


        if (!empty($ide_car) && $ide_car != -1) {
            $this->data['pensum'] = $this->Pensum_Model->getPensumCarreras($ide_car);
            $this->data['ide_car'] = $ide_car;
            //$this->data['ide_pen'] = -1;
        } else {
            $this->data['ide_car'] = -1;
        }
        if (!empty($ide_pen) && $ide_pen != -1) {
            $this->data['ciclo'] = $this->Ciclos_Model->getCiclosPensum($ide_pen);
            $this->data['ide_pen'] = $ide_pen;
        } else {
            $this->data['ide_pen'] = -1;
        }
        if (!empty($codigo_cic) && $codigo_cic != -1) {
            //$this->data['materias'] = $this->Materia_Model->getMateriaCiclo($codigo_cic);
            $this->data['codigo_cic'] = $codigo_cic;
        } else {
            $this->data['codigo_cic'] = -1;
        }



        if (isset($_POST['btn1'])) {
            //$cod=$this->input->post('ide_pen');

            $carr = $this->Carrera_Model->getDatosCarrera($ide_car);
            $this->data['nom_car'] = $carr[0]['nombre_car'];
            $this->data['ide_lec'] = $periodo['ide_lec'];
        }
        $this->_render('cambiarnromat/new');
    }

    public function procesar() {
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();


        $ide_lec = $this->input->post('ide_lec');
        $ide_car = $this->input->post('ide_car');
        $ide_pen = $this->input->post('ide_pen');
        $ide_ciclo = $this->input->post('codigo_cic');
        $seccion = $this->input->post('seccion');
        $paralelo = $this->input->post('paralelo');
        if (isset($_POST['listar'])) {
            $seccion = 0;
            $this->data['listar'] = 1;
        }


        $this->data['nom_seccion'] = ($seccion == 1 ? "DIURNO" : ($seccion == 2 ? "NOCTURNO" : "FIN DE SEMANA"));
        $sexo_pers=$this->input->post('sexo_pers');
        $autodefin_pers=$this->input->post('autodefin_pers');
        $arreglo = array();
        $this->data['ide_lec']=$ide_lec;
        //$arreglo=$this->Reportes_Model->getMatriculadosPorSemestreCarreraCicloJornada($ide_lec,$ide_car,$ide_pen,$ide_ciclo,$seccion);



        if ($ide_lec > 0 && $ide_car > 0 && $ide_pen > 0 && $ide_ciclo > 0 && $seccion > 0) {
            $arreglo = $this->Reportes_Model->getMatriculadosPorSemestreCarreraCicloJornada($ide_lec, $ide_car, $ide_pen, $ide_ciclo, $seccion,$paralelo,$sexo_pers,$autodefin_pers);
            if (count($arreglo) > 0) {
            //$this->data['nombre_car']=(!empty($arreglo)?$arreglo[0]['nombre_car']:"SIN DATOS");
            //$this->data['nombre_cic']=(!empty($arreglo)?$arreglo[0]['nombre_cic']:"SIN DATOS");

             $arreglo = $this->orderMultiDimensionalArray($arreglo, 'apellido_pers', false);
            foreach ($arreglo as $key =>$pos) {
                
                if ($pos['modo_mat']>1){
                    if (!$this->verificar_ciclo($pos['id_matr'],$pos['ide_cic'])) {
                      unset($arreglo[$key]);
                      }
                    
                }
            }
                
        }

            //$newArray = array();
            //foreach ($arreglo as $key => $pos) {
           //     if ($ide_lec == $pos['periodos_lectivos_ide_lec'] && $ide_car == $pos['ide_car'] && $ide_pen == $pos['ide_pen'] && $ide_ciclo == $pos['ide_cic'] && $seccion == $pos['seccion']) {
            //        $newArray[] = $arreglo[$key];
            //    }
            //}
            //$this->data['reporte'] = $newArray;
             //$arreglo = $this->orderMultiDimensionalArray($arreglo, 'apellido_pers', false);
            $this->data['reporte'] = $arreglo;

            //echo ($ide_lec . '-' . $ide_car . '-' . $ide_pen . '-' . $ide_ciclo . '-' . $seccion);
            //echo "aqui";
            //print_r($arreglo);
            $this->_render('cambiarnromat/lista1');
        } else { //if ($ide_lec >0 && $ide_car <0 && $ide_pen<0 && $ide_ciclo<0 && $seccion>0) {
            $arreglo = $this->Reportes_Model->getMatriculadosPorSemestreCarreraCicloJornada($ide_lec, $ide_car, $ide_pen, $ide_ciclo, $seccion,$paralelo,$sexo_pers,$autodefin_pers,1);

            //$arreglo = $this->Reportes_Model->getMatriculadosPorSemestreCarreraCicloJornada($ide_lec, $ide_car, $ide_pen, $ide_ciclo, $seccion,$paralelo,$sexo_pers,$autodefin_pers);
            if (count($arreglo) > 0) {
                $arreglo = $this->orderMultiDimensionalArray($arreglo, 'apellido_pers', false);
                foreach ($arreglo as $key =>$pos) {
                
                if ($pos['modo_mat']>1){
                    if (!$this->verificar_ciclo($pos['id_matr'],$pos['ide_cic'])) {
                      unset($arreglo[$key]);
                      }
                    
                }
            }
                


            //echo ($ide_lec.$ide_car.$ide_pen.$ide_ciclo.$seccion);
            if (isset($_POST['listar'])) {
                $arreglo = $this->orderMultiDimensionalArray($arreglo, 'seccion', false);
            } else {
                $arreglo = $this->orderMultiDimensionalArray($arreglo, 'nombre_car', false);
            }
           }

            $this->data['reporte'] = $arreglo;
            $this->_render('cambiarnromat/lista2');
        }


        //$this->_render('rpt_inscrip/lista1');
    }

    function orderMultiDimensionalArray($toOrderArray, $field, $inverse = false) {
        $position = array();
        $newRow = array();
        foreach ($toOrderArray as $key => $row) {
            $position[$key] = $row[$field];
            $newRow[$key] = $row;
        }
        if ($inverse) {
            arsort($position);
        } else {
            asort($position);
        }
        $returnArray = array();
        foreach ($position as $key => $pos) {
            $returnArray[] = $newRow[$key];
        }
        return $returnArray;
    }
    public function cambiarnro(){
        echo "entro";
        if (!$this->ion_auth->logged_in() || (!$this->ion_auth->is_admin() && !$this->ion_auth->is_secretary())) {
            $this->session->set_flashdata('message', 'No pertence al grupo de Docentes');
            redirect('auth/login', 'refresh');
        }
        $this->data['user'] = $this->ion_auth->get_user_username();
        $this->load->model('Matricula_Model');
        
                

        $nro_filas=$this->input->post('fila');
        $msj="<br/>";
        $ide_lec = $this->input->post('ide_lec');
        //echo $nro_filas. "filas";
        if ($nro_filas > 0) {
            for ($i = 1; $i <= $nro_filas; $i++) {
                
                if (isset($_POST['ide_mat' . ($i)])  ) {
                    //echo ($_POST['ide_mat' . ($i)]."<br>");
                    //echo($this->input->post('nro_matr'.$i));
                    if ($this->input->post('nro_matr'.$i)>0){ 
                       $cambio=array(
                        "nro_matr"=>$this->input->post('nro_matr'.$i),
                         "id_matr"=>$this->input->post('ide_mat'.$i),);

                        if ($ide_lec>=9){ //desde el semestre 9 esta bien la numeracion
                            if ($this->Matricula_Model->VerificaExisteNromat($ide_lec,($this->input->post('nro_matr'.$i)))){
                                //no se puede actualizar
                                
                                $msj=$msj."<span>Numero de matricula".$this->input->post('nro_matr'.$i) ."no se puede actualizar ya existe </span>";
                                
                            }else{
                                $msj=$msj."<br/><span>Numero de matricula".$this->input->post('nro_matr'.$i) ."actualizado </span>";
                                $this->Matricula_Model->actualizaNro_mat($cambio);
                            }
                            
                        }else{
                            if ($this->Matricula_Model->VerificaExisteNromat($ide_lec,($this->input->post('nro_matr'.$i)))){
                                $ide=$this->Matricula_Model->getIdeMatriculaAsignadoPeriodo($ide_lec,($this->input->post('nro_matr'.$i)));//nro_matr
                                $cambio1=array(
                                "nro_matr"=>0,
                                    "id_matr"=>$ide);

                                $msj=$msj. "<br/><span>Se encero la matricula con ide".$ide."</span>";
                                $this->Matricula_Model->actualizaNro_mat($cambio1);
                                $msj=$msj."<br/><span>actualiza".$this->input->post('ide_mat'.$i)."</span>";
                                $this->Matricula_Model->actualizaNro_mat($cambio);
                                
                                
                                
                            }else{
                                $msj=$msj."<br/><span>Numero de matricula".$this->input->post('nro_matr'.$i) ."actualizado <span>";
                                $this->Matricula_Model->actualizaNro_mat($cambio);
                            }

                            
                        }
                        
                        //print_r($cambio);
                        //echo ("<br/>");
                        
                   }


               }

                
                //redirect('cambiarnromat/inicio');
            }
            $this->data['msj_del']=$msj;
            $this->data['tit_del']="CAMBIAR NUMERO DE MATRICULAS";
            $this->data['volver']="cambiarnromat/inicio";

            $this->_render('template/msj_error');

        }
        
    }
       public function verificar_ciclo($id_matr,$ide_cic){
       $ciclo=array(
           array('ciclo'=>1,'cant'=>0,'id'=>0),
           array('ciclo'=>2,'cant'=>0,'id'=>0),
           array('ciclo'=>3,'cant'=>0,'id'=>0),
           array('ciclo'=>4,'cant'=>0,'id'=>0),
           array('ciclo'=>5,'cant'=>0,'id'=>0),
           array('ciclo'=>6,'cant'=>0,'id'=>0));
       
       $arreglo = $this->Reportes_Model->getCantidadMateriasCicloPorMatricula($id_matr);
       //print_r($arreglo);
       //foreach($ciclo as $item){
       for ($i=0;$i<6;$i++){
           //echo $item['ciclo'];
           //echo $item['cant'];
           //echo $item['id'];
           $cont=0;
           
           foreach ($arreglo as $row) {
               if ($ciclo[$i]['ciclo']==intval($row['codigo_cic'])){
                   $cont++;
                   //echo $cont;
                    $ciclo[$i]['cant']=$cont;
                    $ciclo[$i]['id']=$row['ide_cic'];
                    
                    
               }
               
                   
                }
                
            }
            //echo "<br>".$ide_cic;
            $ciclo = $this->orderMultiDimensionalArray($ciclo, 'cant', TRUE);
           //print_r($ciclo);
            $ide_c=0;
            if($ciclo[0]['cant']>$ciclo[1]['cant']){
                //echo "<br/>".$ciclo[0]['id'].' - '.$ciclo[0]['ciclo'];
                $ide_c=$ciclo[0]['id'];
            }elseif($ciclo[0]['cant']==$ciclo[1]['cant']){
                //echo $ciclo[0]['ciclo']. $ciclo[1]['ciclo'];
                $ide_c=($ciclo[0]['ciclo']>$ciclo[1]['ciclo']?$ciclo[0]['id']:$ciclo[1]['id']);
                //if($ciclo[0]['ciclo']>$ciclo[1]['ciclo']){
                    //echo "<br/>".$ciclo[0]['id'].' - '.$ciclo[0]['ciclo'];
                //    $ide_c=$ciclo[0]['id'];
                    
                //}
                
            }
            //echo $ide_c;
            if($ide_cic!=$ide_c){
                    return FALSE;
            }else{
                return TRUE;
            }   
            //print_r($ciclo);
            
       
       

       
       
   }

}
